package org.su.generalmvc.annotaion;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 控制器注解，如果类不是以Controller字符串结尾的类名，那么也可以使用该注解表示类为控制器类
 * @author yangchuan
 * 控制器中支持JSR-250的  @PostConstruct，@PreDestroy 注解，来完成对象的初始化和销毁
 *
 */

@Retention(RetentionPolicy.RUNTIME)
@Target(value={ElementType.TYPE})
public @interface Controller {
	/**
	 * 控制器的名字属性,为控制器在Spring中的bean名称，该名称为velocity视图文件夹名称
	 * @return 控制器名称，默认去控制器的简单类名称，
	 */
	public String name() default "";
	
	/**
	 * 包名称，包含控制器的命名空间和拦截器堆栈
	 * @return 返回指定的包名称
	 */
	public String packageName() default "";
	
	/**
	 * 配置控制器的url地址
	 * @return url相对地址字串
	 */
	public String url() default "";
	
	/**
	 * 控制器下的所有action 后缀
	 * @return 返回后缀字串
	 */
	public String actionSuffix() default "";
	
	/**
	 * 对权限进行描述
	 * @return 返回权限描述信息
	 */
	public String description() default "";
}
